package com.jh.fcsm.constant;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 代码生成通用常量
 *
 * @author szx
 */
public class GenConstants {
    /**
     * 单表（增删改查）
     */
    public static final String TPL_CRUD = "crud";

    /**
     * 树表（增删改查）
     */
    public static final String TPL_TREE = "tree";

    /**
     * 主子表（增删改查）
     */
    public static final String TPL_SUB = "sub";

    /**
     * 树编码字段
     */
    public static final String TREE_CODE = "treeCode";

    /**
     * 树父编码字段
     */
    public static final String TREE_PARENT_CODE = "treeParentCode";

    /**
     * 树名称字段
     */
    public static final String TREE_NAME = "treeName";

    /**
     * 上级菜单ID字段
     */
    public static final String PARENT_MENU_ID = "parentMenuId";

    /**
     * 上级菜单名称字段
     */
    public static final String PARENT_MENU_NAME = "parentMenuName";
    /**
     * 数据库字符串类型
     */
    public static final List<String> COLUMN_TYPE_LIST = Collections.unmodifiableList(Arrays.asList("char", "varchar", "nvarchar", "varchar2"));

    /**
     * 数据库文本类型
     */
    public static final List<String> COLUMNTYPE_TEXT = Collections.unmodifiableList(Arrays.asList("tinytext", "text", "mediumtext", "longtext"));

    /**
     * 数据库时间类型
     */
    public static final List<String> COLUMNTYPE_TIME = Collections.unmodifiableList(Arrays.asList("datetime", "time", "date", "timestamp"));

    /**
     * 数据库数字类型
     */
    public static final List<String> COLUMNTYPE_NUMBER = Collections.unmodifiableList(Arrays.asList("tinyint", "smallint", "mediumint", "int", "number", "integer",
            "bit", "bigint", "float", "double", "decimal"));

    /**
     * 页面不需要编辑字段
     */
    public static final List<String> COLUMNNAME_NOT_EDIT = Collections.unmodifiableList(Arrays.asList("CREATE_USER", "CREATE_USER_NICKNAME", "CREATE_TIME", "UPDATE_USER", "UPDATE_USER_NICKNAME",
            "UPDATE_TIME", "ID", "ATTR1", "ATTR2", "ATTR3", "ATTR4", "ATTR5", "YN"));

    /**
     * 页面不需要显示的列表字段
     */
    public static final List<String> COLUMNNAME_NOT_LIST = Collections.unmodifiableList(Arrays.asList("CREATE_USER", "CREATE_USER_NICKNAME", "CREATE_TIME", "UPDATE_USER", "UPDATE_USER_NICKNAME",
            "UPDATE_TIME", "ID", "ATTR1", "ATTR2", "ATTR3", "ATTR4", "ATTR5", "YN"));

    /**
     * 页面不需要查询字段
     */
    public static final List<String> COLUMNNAME_NOT_QUERY = Collections.unmodifiableList(Arrays.asList("CREATE_USER", "CREATE_USER_NICKNAME", "CREATE_TIME", "UPDATE_USER", "UPDATE_USER_NICKNAME",
            "UPDATE_TIME", "ID", "ATTR1", "ATTR2", "ATTR3", "ATTR4", "ATTR5", "YN"));

    /**
     * Entity基类字段
     */
    public static final List<String> BASE_ENTITY = Collections.unmodifiableList(Arrays.asList("createUser", "createUserNickname", "createTime", "updateUser", "updateUserNickname",
            "updateTime", "id", "attr1", "attr2", "attr3", "attr4", "attr5", "yn"));

    /**
     * Tree基类字段
     */
    public static final List<String> TREE_ENTITY = Collections.unmodifiableList(Arrays.asList("parentName", "parentId", "orderNum", "ancestors", "children"));

    /**
     * 文本框
     */
    public static final String HTML_INPUT = "input";

    /**
     * 文本域
     */
    public static final String HTML_TEXTAREA = "textarea";

    /**
     * 下拉框
     */
    public static final String HTML_SELECT = "select";

    /**
     * 单选框
     */
    public static final String HTML_RADIO = "radio";

    /**
     * 复选框
     */
    public static final String HTML_CHECKBOX = "checkbox";

    /**
     * 日期控件
     */
    public static final String HTML_DATETIME = "datetime";

    /**
     * 图片上传控件
     */
    public static final String HTML_IMAGE_UPLOAD = "imageUpload";

    /**
     * 文件上传控件
     */
    public static final String HTML_FILE_UPLOAD = "fileUpload";

    /**
     * 富文本控件
     */
    public static final String HTML_EDITOR = "editor";

    /**
     * 字符串类型
     */
    public static final String TYPE_STRING = "String";

    /**
     * 整型
     */
    public static final String TYPE_INTEGER = "Integer";

    /**
     * 长整型
     */
    public static final String TYPE_LONG = "Long";

    /**
     * 浮点型
     */
    public static final String TYPE_DOUBLE = "Double";

    /**
     * 高精度计算类型
     */
    public static final String TYPE_BIGDECIMAL = "BigDecimal";

    /**
     * 时间类型
     */
    public static final String TYPE_DATE = "Date";

    /**
     * 模糊查询
     */
    public static final String QUERY_LIKE = "LIKE";

    /**
     * 需要
     */
    public static final String REQUIRE = "1";
}
